using HMS.Contracts.Models;
using HMS.Core.DataProtocol;
using Microsoft.AspNetCore.Authentication.JwtBearer;

namespace HMS.Core.Abstractions;

public interface ITenantService
{
    TenantModel Tenant { get; }

    void SetTenantId(string tenantId);

    Task<OperationalResult<Token>> AuthenticateAsync(TenantLoginModel model, CancellationToken cancellationToken = default);

    string GetSchema();

    Task Validate(TokenValidatedContext context);
}